home *** CD-ROM | disk | FTP | other *** search
/ Just Call Me Internet / Just Call Me Internet.iso / prog / atari / m2 / cat3src / magic / d / mttextfi.d < prev    next >
Text File  |  1997-10-26  |  5KB  |  121 lines

  1. (*----------------------------------------------------------------------*
  2.  *                                                                      *
  3.  *  MAGICTOOLS   Modula's  All purpose  GEM  Interface  Cadre  Toolbox  *
  4.  *               ÿ         ÿ            ÿ    ÿ          ÿ               *
  5.  *----------------------------------------------------------------------*
  6.  * Version 3.30  02.02.1992     (C)90/91/92 by Peter Hellinger Software *
  7.  *----------------------------------------------------------------------*
  8.  *            Dieses Modul ist urheberrechtlich geschtzt.              *
  9.  *                                                                      *
  10.  * Die Ver”ffentlichung des Quelltextes oder Teilen daraus, sowie die   *
  11.  * Verbreitung des bersetzten, nicht gelinkten Codes in schriftlicher, *
  12.  * oder maschinenlesbarer Form, insbesondere in Zeitschriften, Mail-    *
  13.  * boxen oder anderen Medien bedarf der ausdrcklichen schriftlichen    *
  14.  * Einverst„ndnisserkl„rung des Autors.                                 *
  15.  *                                                                      *
  16.  * Die Verbreitung des Moduls als Teil eines gelinkten Programms ist    *
  17.  * fr Lizenznehmer ausdrcklich erlaubt!  Der Autor beh„lt sich das    *
  18.  * Recht vor, diese Erlaubnis jederzeit und ohne Angaben von Grnden zu *
  19.  * widerrufen.                                                          *
  20.  *----------------------------------------------------------------------*)
  21.  
  22. (*----------------------------------------------------------------------*
  23.  * mtTextfiles  Dateihandling von Textdateien                           *
  24.  *----------------------------------------------------------------------*)
  25.  
  26. DEFINITION MODULE mtTextfiles;
  27.  
  28. FROM MagicSys   IMPORT  Nil, Null, Bit0, Bit1, Bit2, Bit3, Bit4, Bit5, Bit6,
  29.                         Bit7, Bit8, Bit9, Bit10, Bit11, Bit12, Bit13, Bit14,
  30.                         Bit15, LOC, Byte, ByteSet, sWORD, sINTEGER, sCARDINAL,
  31.                         sBITSET, lINTEGER, lCARDINAL, lWORD, lBITSET;
  32.  
  33.  
  34.  
  35.  
  36.  
  37. TYPE    TEXTFILE;
  38.  
  39. TYPE    Textmode =      (READ, WRITE, APPEND);
  40.  
  41. PROCEDURE OpenTextfile (REF  name: ARRAY OF CHAR;  mode: Textmode;
  42.                         puffer: sCARDINAL; VAR text: TEXTFILE): BOOLEAN;
  43. (* ™ffnet eine Textdatei. puffer gibt die Gr”že des zu benutzenden Puffer-
  44.  * speichers an. 
  45.  *) 
  46.  
  47. PROCEDURE CloseTextfile (VAR text: TEXTFILE);
  48. (* Schliesst eine Textdatei *)
  49.  
  50. PROCEDURE FlushBuffer (text: TEXTFILE);
  51. (* Schreibt den Textpuffer auf Diskette *)
  52.  
  53. PROCEDURE Reset (text: TEXTFILE);
  54. (* Setzt den Dateizeiger an den Dateianfang *)
  55.  
  56. PROCEDURE Textpos (text: TEXTFILE): lCARDINAL;
  57. (* Ermittelt die Position des Dateizeigers in Bytes vom Anfang der Datei *)
  58.  
  59. PROCEDURE SetTextpos (text: TEXTFILE; pos: lCARDINAL);
  60. (* Setzt die Position des Dateizeigers in Bytes vom Anfang der Datei *)
  61.  
  62. PROCEDURE EndofText (text: TEXTFILE): BOOLEAN;
  63. (* TRUE, wenn bei einem zum Lesen ge”ffneten Text das Dateiende ereicht
  64.  * worden ist.
  65.  *)
  66.  
  67. PROCEDURE WriteChar (text: TEXTFILE; c: CHAR);
  68. (* Schreibt Zeichen *)
  69.  
  70.  PROCEDURE WriteLine (text: TEXTFILE; REF  s: ARRAY OF CHAR); 
  71.  
  72. (* schnelle Stringausgabe, kein LF *)
  73.  
  74. PROCEDURE WriteConst (text: TEXTFILE; REF  s: ARRAY OF CHAR);
  75. (* Stringausgabe fr konstante Strings *)
  76.  
  77. PROCEDURE WriteLn (text: TEXTFILE);
  78. (* CR + LF *)
  79.  
  80. PROCEDURE WriteCard     (text: TEXTFILE; wert: sCARDINAL; len: sCARDINAL);
  81. PROCEDURE WriteInt      (text: TEXTFILE; wert: sINTEGER;  len: sCARDINAL);
  82. PROCEDURE WriteLongCard (text: TEXTFILE; wert: lCARDINAL; len: sCARDINAL);
  83. PROCEDURE WriteLongInt  (text: TEXTFILE; wert: lINTEGER;  len: sCARDINAL);
  84. PROCEDURE WriteReal     (text: TEXTFILE; wert: REAL;      len: sCARDINAL);
  85. PROCEDURE WriteLongReal (text: TEXTFILE; wert: LONGREAL;  len: sCARDINAL);
  86. (* Schreibt die entspechenden Werte mit L„nge len *)
  87.  
  88.  
  89. PROCEDURE ReadSpec (text: TEXTFILE; REF  check: ARRAY OF CHAR;
  90.                     VAR str: ARRAY OF CHAR);
  91. (* Liest solange Zeichen bis das gelesene Zeichen nicht in check ist.
  92.  * Fhrende Zeichen die nicht in check sind werden bersprungen.
  93.  *)
  94.  
  95. PROCEDURE ReadChar (text: TEXTFILE; VAR c: CHAR);
  96. (* Liest Zeichen *)
  97.  
  98. PROCEDURE ReadLine (text: TEXTFILE; VAR s: ARRAY OF CHAR);
  99. (* Liest Zeichen ein bis ein CR oder LF auftritt.  Achtung! Der 
  100.  * Dateizeiger steht auf dem Zeichen, das den Abbruch ausgel”st hat.
  101.  *)
  102.  
  103. PROCEDURE ReadLn (text: TEXTFILE);
  104. (* Liest Zeichen, bis ein CR, LF oder CR/LF auftritt.
  105.  * Achtung! Der Dateizeiger steht auf dem Zeichen nach dem LF!
  106.  *)
  107.  
  108. PROCEDURE ReadCard     (text: TEXTFILE; VAR wert: sCARDINAL);
  109. PROCEDURE ReadInt      (text: TEXTFILE; VAR wert: sINTEGER);
  110. PROCEDURE ReadLongCard (text: TEXTFILE; VAR wert: lCARDINAL);
  111. PROCEDURE ReadLongInt  (text: TEXTFILE; VAR wert: lINTEGER);
  112. PROCEDURE ReadReal     (text: TEXTFILE; VAR wert: REAL);
  113. PROCEDURE ReadLongReal (text: TEXTFILE; VAR wert: LONGREAL);
  114. (* Liest die entspechenden Werte ein. Fhrende Blanks werden
  115.  * berlesen, ein Blank oder ein Zeichen kleiner als Blank
  116.  * bricht die Eingabe ab.
  117.  *)
  118.  
  119. END mtTextfiles.
  120.  
  121.